iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0

金融案有個識別客戶類型的公用程式,什麼類型就得回覆相應編碼,如下:
https://ithelp.ithome.com.tw/upload/images/20240914/20119865sACmy6UIuU.png
那麼在Java怎麼寫?

// ID Type的正規表達式
private static Map<String, String> IdTypeRegex = new HashMap<String, String>(){{
    put("[A-Z][0-7][0-9]{8}", "11");                        // 本國自然人
    put("[A-Z][8-9A-Z][0-9]{8}", "12");                     // 外國自然人
    put("[0-9]{8}[A-Z]{2}","13");                           // 境外自然人
    put("[0-9]{7}([0-9]{3})?", "19");                       // 內政部配賦統一證號 (旅行證10碼,居留證7碼)
    put("[0-9]{6}([0-9]{2}|  [0-9])", "21");                // 本國法人
    put("[A-Z]{4}[0-9]{4}", "22");                          // 境外法人虛擬統編, OBU法人(聯徵中心編配)
    put("[A-Z]{6}(?:[0-9A-Z]{5}|[0-9A-Z]{2})", "23");       // 金融同業(SWIFT CODE)
    put("[0-9]{3}[A-Z]{2}[0-9]{3}", "29");                  // 境外法人(免送聯徵), OBU法人(本行編配)
    put("GRP[0-9]{8}", "31");                               // 集團戶(企金徵審系統編配)
    put("88(?:[A-Z]{8,9}|[A-Z]{6})", "32");                 // 信用狀/市庫
}};

// 判斷符合哪個ID Type Pattern,若全不符合回傳null
public static String checkIDType(String custID) {
   for (Map.Entry<String, String> entry : IdTypeRegex.entrySet()) {
       if (custID.toUpperCase().matches(entry.getKey()))
           return entry.getValue();
   }
   return null;
}

下一篇
SSH Terrapin Prefix Truncation Weakness (CVE-2023-48795) 弱點修正
系列文
正則!好好表達14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言